import request from '@/utils/request'

/**
 * 角色菜单关联API接口
 */

/**
 * 根据角色ID查询菜单ID列表
 * @param {Number} roleId 角色ID
 * @returns {Promise} 请求结果
 */
export function getMenuIdsByRoleId(roleId) {
  return request({
    url: `/role-menus/role/${roleId}`,
    method: 'get'
  })
}

/**
 * 根据菜单ID查询角色ID列表
 * @param {Number} menuId 菜单ID
 * @returns {Promise} 请求结果
 */
export function getRoleIdsByMenuId(menuId) {
  return request({
    url: `/role-menus/menu/${menuId}`,
    method: 'get'
  })
}

/**
 * 为角色分配菜单
 * @param {Number} roleId 角色ID
 * @param {Array} menuIds 菜单ID列表
 * @returns {Promise} 请求结果
 */
export function assignMenusToRole(roleId, menuIds) {
  return request({
    url: `/role-menus/role/${roleId}/assign`,
    method: 'post',
    data: menuIds
  })
}

/**
 * 删除角色的所有菜单关联
 * @param {Number} roleId 角色ID
 * @returns {Promise} 请求结果
 */
export function removeMenusByRoleId(roleId) {
  return request({
    url: `/role-menus/role/${roleId}`,
    method: 'delete'
  })
}

/**
 * 删除菜单的所有角色关联
 * @param {Number} menuId 菜单ID
 * @returns {Promise} 请求结果
 */
export function removeRolesByMenuId(menuId) {
  return request({
    url: `/role-menus/menu/${menuId}`,
    method: 'delete'
  })
}